var express = require('express')
var path = require('path')
var router = require('./router.js')
var bodyParser = require('body-parser')
var session = require('express-session')

var app = express()

app.use('/public/',express.static(path.join(__dirname, './public/')))
app.use('/node_modules/',express.static(path.join(__dirname,'./node_modules/')))

app.engine('html',require('express-art-template'))

app.set('views',path.join(__dirname,'./views/'))//默认



app.use(bodyParser.json()) // for parsing application/json
app.use(bodyParser.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

//在express这个框架中默认不支持session 和 cookie
//但我们可以使用第三方中间件 ：express-session来解决
app.use(session({
	//配置加密字符串，他会在原有的加密基础上和这个字符串凭借起来加密
  secret: 'keyboard cat',
  resave: false,
  saveUninitialized: false,
  //true 无论是否使用session，都会默认分配一把钥匙
  //如果是false 只有真正有session数据的时候才会 分配
}))

app.use(router)

app.use(function(req,res){
	res.render('404.html')
})

//
/* router.get('/',function(req,res,next){
	fs.readfile('.asdas/asdasdas/',function(err,data){
		if(err){
			//当调用next的时候 ， 如果传递了参数，则直接往后找到带有四个参数的应用程序级别中间件
			//当发生错误的时候，我们就可以调用next 传递错误对象 
			然后就会被全局错误处理中间件匹配到并处理掉
			next(err)
		}
	})
}) */


//服务器错误处理
app.use(function(err,req,res,next){
	res.status(500).json({
		err_code: 500,
		message: err.message
	})
})

app.listen(3000,function(){
	console.log('server is running')
})